МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ЗВІТ
до лабораторної роботи №4
з курсу:
«Цифрові методи обробки сигналів і зображень»
на тему:
«ВЕЙВЛЕТ-ОБРОБКА ЗОБРАЖЕНЬ У СЕРЕДОВИЩІ MATLAB»
Мета роботи – ознайомитися з основними можливостями вейвлет-обробки зображень реалізованими в середовищі MatLab, отримати навики розрахунку дискретного вейвлет-перетворення двовимірних сигналів, декомпозиції зображень та їх компресії в середовищі MatLab.
ЗАВДАННЯ
1. Ознайомитись з теоретичним матеріалом.
2. Скласти програму в середовищі MatLab згідно завдання.
2.1. Провести компресію зображення з використанням вейвлет-процедури відповідно до завдання у Табл. 2. Зображення зберігається у заданому варіантом файлі у 8-бітінй змінній Y. Файл entropy.m повинен бути скопійований в ту саму папку в якій знаходяться програма і зображення.
Табл. 1.
№
Тип вейвлету
Рівень
розкладу
Тип
порогу
Кількість біт квантувача
відповідно до рівня
Файл
1.
Добеші 3-го порядку
3
жорсткий
[1 3 4]
belmont1.tiff
РЕЗУЛЬТАТИ ВИКОНАННЯ РОБОТИ
Лістинг програми:
>> Y = imread('belmont1', 'tiff');
>> Y = imread('belmont1', 'tiff');% Завантаження зображення з файлу.
>> Y = double(Y) / 256;% Приведення зображення до напівтонового формату
>> Lev = 3;% Рівень розкладу
>> w_name = 'db3'; % Тип вейвлету.
>> Lev_1_bit = 1; % Кількість біт квантувача для 1-го рівня розкладу.
>> Lev_2_bit = 3; % Кількість біт квантувача для 2-го рівня розкладу.
>> Lev_3_bit = 4; % Кількість біт квантувача для 3-го рівня розкладу.
>> [c, s] = wavedec2(Y, Lev, w_name); % Вейвлет-розклад зображення
>> cA3 = appcoef2(c, s, w_name, 3); % Знаходження коефіцієнтів апроксимації для 3-го рівня
>> cH3 = detcoef2('h', c, s, 3); % Знаходження горизонтальних коефіцієнтів для 3-го рівня
>> cV3 = detcoef2('v', c, s, 3); % Знаходження вертикальних коефіцієнтів для 3-го рівня
>> cD3 = detcoef2('d', c, s, 3); % Знаходження діагональних коефіцієнтів для 3-го рівня
>> cA2 = appcoef2(c, s, w_name, 2); % Знаходження коефіцієнтів апроксимації для 2-го рівня
>> cH2 = detcoef2('h', c, s, 2); % Знаходження горизонтальних коефіцієнтів для 2-го рівня
>> cV2 = detcoef2('V', c, s, 2); % Знаходження вертикальних коефіцієнтів для 2-го рівня
>> cD2 = detcoef2('d', c, s, 2); % Знаходження діагональних коефіцієнтів для 2-го рівня
>> cA1 = appcoef2(c, s, w_name, 1); % Знаходження коефіцієнтів апроксимації для 1-го рівня
>> cH1 = detcoef2('h', c, s, 1); % Знаходження горизонтальних коефіцієнтів для 1-го рівня
>> cV1 = detcoef2('V', c, s, 1); % Знаходження вертикальних коефіцієнтів для 1-го рівня
>> cD1 = detcoef2('d', c, s, 1); % Знаходження діагональних коефіцієнтів для 1-го рівня
>> % Побудова графіків коефіцієнтів розкладу 1-го рівня
>> figure(1); subplot(221); imshow(mat2gray(cA1)); xlabel('cA1');
>> subplot(222); imshow(mat2gray(cH1)); xlabel('cH1');
>> subplot(223); imshow(mat2gray(cV1)); xlabel('cV1');
>> subplot(224); imshow(mat2gray(cD1)); xlabel('cD1');
>> % Побудова графіків коефіцієнтів розкладу 2-го рівня
>> figure(3); subplot(221); imshow(mat2gray(cA2)); xlabel('cA2');
>> subplot(222); imshow(mat2gray(cH2)); xlabel('cH2');
>> subplot(223); imshow(mat2gray(cV2)); xlabel('cV2');
>> subplot(224); imshow(mat2gray(cD2)); xlabel('cD2');
>> % Побудова графіків коефіцієнтів розкладу 3-го рівня
>> figure(4); subplot(221); imshow(mat2gray(cA3)); xlabel('cA3');
>> subplot(222); imshow(mat2gray(cH3)); xlabel('cH3');
>> subplot(223); imshow(mat2gray(cV3)); xlabel('cV3');
>> subplot(224); imshow(mat2gray(cD3)); xlabel('cD3');
>> A3 = wrcoef2('a', c, s, w_name, 3); % Обчислення апроксимуючої складової на 3-му рівні
>> H3 = wrcoef2('h', c, s, w_name, 3); % Обчислення горизонтальної складової на 3-му рівні
>> V3 = wrcoef2('v', c, s, w_name, 3); % Обчислення вертикальної складової на 3-му рівні
>> D3 = wrcoef2('d', c, s, w_name, 3); % Обчислення діагональної складової на 3-му рівні
>> A2 = wrcoef2('a', c, s, w_name, 2); % Обчислення апроксимуючої складової на 2-му...